#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_up_clicked()
{
    //1.获取到target按钮本身的geometry
    QRect rect = ui->pushButton_target->geometry();
    qDebug() << rect;
//    //2.修改target按钮对应的QRect中的y值
//    rect.setY(rect.y() - 5);
//    //3.把修改后的QRect的对象设置成target按钮本身的geometry属性
//    ui->pushButton_target->setGeometry(rect);

    //上述代码只是在调整左上角的位置,左上角位置改变的同时,其矩形的高度和宽度也会发生相应的改变
    //只是实现"平移"的效果,不再修改QRect的值,而是基于QRect的值通过setGeometry的第二个版本的函数重新设值位置即可
    //2.基于QRect的值通过setGeometry的第二个版本的函数重新设值位置
    ui->pushButton_target->setGeometry(rect.x() , rect.y() - 5 , rect.width() , rect.height());
}

void Widget::on_pushButton_down_clicked()
{
    //1.获取到target按钮本身的geometry
    QRect rect = ui->pushButton_target->geometry();
    qDebug() << rect;
//    //2.修改target按钮对应的QRect中的y值
//    rect.setY(rect.y() + 5);
//    //3.把修改后的QRect的对象设置成target按钮本身的geometry属性
//    ui->pushButton_target->setGeometry(rect);

    //2.基于QRect的值通过setGeometry的第二个版本的函数重新设值位置
    ui->pushButton_target->setGeometry(rect.x() , rect.y() + 5 , rect.width() , rect.height());
}

void Widget::on_pushButton_left_clicked()
{
    //1.获取到target按钮本身的geometry
    QRect rect = ui->pushButton_target->geometry();
    qDebug() << rect;
//    //2.修改target按钮对应的QRect中的x值
//    rect.setX(rect.x() - 5);
//    //3.把修改后的QRect的对象设置成target按钮本身的geometry属性
//    ui->pushButton_target->setGeometry(rect);

    //2.基于QRect的值通过setGeometry的第二个版本的函数重新设值位置
    ui->pushButton_target->setGeometry(rect.x() - 5 , rect.y() , rect.width() , rect.height());
}

void Widget::on_pushButton_right_clicked()
{
    //1.获取到target按钮本身的geometry
    QRect rect = ui->pushButton_target->geometry();
    qDebug() << rect;
//    //2.修改target按钮对应的QRect中的x值
//    rect.setX(rect.x() + 5);
//    //3.把修改后的QRect的对象设置成target按钮本身的geometry属性
//    ui->pushButton_target->setGeometry(rect);

    //2.基于QRect的值通过setGeometry的第二个版本的函数重新设值位置
    ui->pushButton_target->setGeometry(rect.x() + 5 , rect.y() , rect.width() , rect.height());
}
